# smartbox-platform

---

Infrastructure platform of the Internet of Things for the "smart" set-top box for household appliances.

### Description:

To support the operation and interaction of "smart" consoles with the user, a software platform for the Internet of Things is offered.
Several Docker/Podman containers are used to implement the platform, which simplifies version control, dependency management and provides the possibility of straight-line scaling.


### Host System Requirements:

General system requirements:
* Container engine - Docker or Podman
* RAM - 4 GB.
* IP - static

Testing was performed on the following assembly:
* OS - AltLinux Server (p10)
* Container engine - Podman
* CPU - 2 cores (Intel Ice Lake)
* RAM - 4 GB.
* IP - static

### Usage:

In its original form, this platform has a demo example of running server software and tracking logs. You can run the example using podman-compose from the root directory of the repository.

To prepare the repository for use in your own environment with your own set of software, you need to take the following steps:
* Define the required values in the file "compose.yaml"
* Specify your own image assembly instructions in the "smart-box/Containerfile" and specify the necessary files for the assembly.
* After deployment, create a dashboard for Grafana

Repository Files:
1. compose.yaml - Defines the main parameters of the system deployment. The deployment is launched using docker/podman-compose tools.
2. promtail/config.yml - Defines the location of the log files that need to be monitored.
3. smart-box/Containerfile is a container image assembly instructions file.
4. smart-box/box/main.py - Demo application to run inside the container.

---

Платформа интернета вещей для умных приставок к бытовой технике.

### Описание:

Для поддержки работы и взаимодействия "умных" приставок с пользователем предлагается программная платформа Интернета вещей.
Для реализации платформы задействованы несколько контейнеров Docker/Podman, что упрощает контроль версий, управление зависимостями и предоставляет возможность прямолинейного масштабирования.


### Требования к хостовой системе:

Общие требования к системе:
* Container engine - Docker или Podman
* RAM - 4 Гб.
* IP - статический

Тестирование производилось на следующей сборке:
* ОС - AltLinux Server (p10)
* Container engine - Podman
* CPU - 2 ядра (Intel Ice Lake)
* RAM - 4 Гб.
* IP - статический

### Использование:

В исходном виде данная платформа имеет демонстрационный пример запуска серверного ПО и отслеживания логов. Вы можете запустить пример с использованием podman-compose находясь в корневой директории репозитория.

Для подготовки репозитория к использованию в собственной среде со своим набором ПО необходимо предпринять следующие действия:
* Определите необходимые значения в файле "compose.yaml"
* Укажите собственные инструкции сборки образа в "smart-box/Containerfile" и укажите необходимые файлы для сборки.
* После развертывания сформируйте дашборд для Grafana

Файлы репозитория:
1. compose.yaml - Определяет основные параметры развертывания системы. Запуск развертывания производится с помощью инструментов docker/podman-compose. 
2. promtail/config.yml - Определяет расположение лог-файлов, которые необходимо отслеживать.
3. smart-box/Containerfile - Файл инструкций сборки образа контейнера.
4. smart-box/box/main.py - Демонстрационное приложение для запуска внутри контейнера.